查看原文
其他

Docker系列教程08-Dockerfile实战

周立 IT牧场 2019-07-12

本节通过几个例子,来工具Dockerfile的知识。

实战1:使用Dockerfile修改Nginx首页

创建一个Dockerfile,内容如下:

  1. FROM nginx

  2. RUN echo '<h1>Spring Cloud与Docker微服务实战</h1>' > /usr/share/nginx/html/index.html

实战2:使用Dockerfile在CentOS 7中安装Nginx

尽管Docker Hub中已存在基于CentOS 7的镜像,但仍可使用本例的内容学习、巩固Dockerfile的相关知识。

基于CentOS 7镜像,在其中安装Nginx,并启动。

提示:默认Nginx不在官方Yum仓库中,需要先安装RPMS仓库包,这样才能用Yum安装Nginx。安装RPMS包的命令如下:

  1. rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

答案

  1. FROM centos:7

  2. RUN rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

  3. RUN yum -y install nginx

  4. RUN sed -i '1i\daemon off;' /etc/nginx/nginx.conf

  5. ENTRYPOINT nginx

实战3:使用Dockerfile构建一个Spring Boot应用镜像

有一个Java应用,在裸机中的启动命令是 java-jar xxx.jar ,请将其制作成Docker镜像,并启动。

答案

  1. # 基于哪个镜像

  2. FROM java:8

  3. # 将本地文件夹挂载到当前容器

  4. VOLUME /tmp

  5. # 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar

  6. ADD xxxxx.jar app.jar /app.jar'

  7. # 声明需要暴露的端口

  8. EXPOSE 8761

  9. # 配置容器启动后执行的命令

  10. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

巩固:阅读常用软件的Dockerfile

  • Nginx:https://github.com/nginxinc/docker-nginx/blob/849fed0093112cd9f55491fccd2f861eb9fad5f9/stable/alpine/Dockerfile

  • Tomcat:https://github.com/docker-library/tomcat/blob/0e9a915bf893faa9160ab1a144c7ba5049a4fe27/7/jre7-alpine/Dockerfile

  • 关于Alpine Linux:http://www.cnblogs.com/zhangmingcheng/p/7122386.html


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存